//
// Description: 846. 树的重心
// Created by Loading on 2022/5/15.
//

#include <bits/stdc++.h>

using namespace std;

constexpr int N = 1e5 + 10;

// 注意：e和ne范围为2 * N，每条边要增加两次
int h[N], e[2 * N], ne[2 * N], idx;
// 标记数组
bool st[N];
int n;
int ans = N;

// 增加一条边
void add(int a, int b) {
    e[idx] = b;
    ne[idx] = h[a];
    h[a] = idx++;
}

// 返回以 index 为根的子树中节点的个数，包括 index 节点
int dfs(int index) {
    st[index] = true;

    // sum为以 index 为根的子树中节点的个数，包括 index 节点
    // res存储 删掉这个节点之后，最大的连通子图节点数
    int sum = 1, res = 0;
    // 遍历每棵子树
    for (int i = h[index]; i != -1; i = ne[i]) {
        int u = e[i];
        if (!st[u]) {
            int cnt = dfs(u);
            // 累加每棵子树的节点数
            sum += cnt;
            res = max(res, cnt);
        }
    }
    // n - sum 为 index 节点的父节点的连通子图节点数
    res = max(res, n - sum);
    // 更新结果
    ans = min(ans, res);

    return sum;
}

int main() {
    cin >> n;
    memset(h, -1, sizeof h);

    for (int i = 0; i < n - 1; ++i) {
        int a, b;
        cin >> a >> b;
        add(a, b);
        add(b, a);
    }

    dfs(1);

    cout << ans << endl;

    return 0;
}